Avastage CSS Grid'i vĂ”imas paigutuse kontroll, sukeldudes sĂŒgavale raja suuruse ĂŒhikutesse, sealhulgas fr, minmax(), auto-fit ja auto-fill. Ăppige tĂ€iustatud tehnikaid reageeriva ja rahvusvahelise veebidisaini jaoks.
CSS Grid'i radade suurused: tÀiustatud paigutuse kontrolli valdamine globaalsete veebikogemuste loomiseks
Pidevalt arenevas ja laienevas veebiarenduse maastikus on robustsete, paindlike ja reageerivate paigutuste loomine esmatĂ€htis. CSS Grid Layout on kujunenud asendamatuks tööriistaks, pakkudes enneolematut kontrolli sisu kahemÔÔtmelise paigutuse ĂŒle. Kuigi Grid'i pĂ”hikontseptsioonid on suhteliselt lihtsad, peitub tĂ”eline meisterlikkus CSS Grid'i radade suuruse mÀÀramise mĂ”istmises ja tĂ”husas kasutamises. See pĂ”hjalik juhend sukeldub sĂŒgavale radade suuruste defineerimise nĂŒanssidesse, vĂ”imaldades teil luua keerukaid ja kohanduvaid disainilahendusi, mis toimivad laitmatult erinevates seadmetes ja globaalsele publikule.
Raja suuruse mÀÀramine (track sizing) on lihtsustatult öeldes see, kuidas te mÀÀrate oma CSS Grid'i konteineris veergude laiuse ja ridade kĂ”rguse. See on mehhanism, mille kaudu te ĂŒtlete brauserile, kui palju ruumi iga paigutuse segment peaks hĂ”ivama. Ilma nende mehhanismide tĂ€pse mĂ”istmiseta vĂ”ivad teie gridid tunduda jĂ€igad, mitte kohaneda muutuva sisupikkusega vĂ”i minna katki erinevatel ekraanisuurustel. Globaalse veebikogemuse jaoks, kus sisu vĂ”idakse tĂ”lkida keeltesse, millel on vĂ€ga erinevad sĂ”napikkused vĂ”i kuvamistavad, muutub dĂŒnaamiline ja sisuteadlik radade suuruse mÀÀramine mitte ainult eeliseks, vaid lausa vajaduseks.
Alused: selgesÔnaline Grid'i radade suuruse mÀÀramine
SelgesĂ”naline grid'i radade suuruse mÀÀramine hĂ”lmab veergude ja ridade mÔÔtmete defineerimist vastavalt grid-template-columns ja grid-template-rows omadustega. Need omadused aktsepteerivad radade suuruste loendit, millest igaĂŒks vastab ĂŒhele veerule vĂ”i reale teie grid'is.
Fikseeritud ja suhtelised pikkusĂŒhikud
KĂ”ige otsekohesem viis radade suuruse mÀÀramiseks on kasutada standardseid CSS-i pikkusĂŒhikuid. Need pakuvad ettearvatavaid, absoluutseid vĂ”i vaateaknaga seotud mÔÔtmeid.
-
Absoluutsed ĂŒhikud (
px,in,cm,mm,pt,pc): Pikslid (px) on kaugelt kÔige levinumad. Need pakuvad tÀpset, muutumatut suurust, mis vÔib olla kasulik fikseeritud laiusega elementide, nagu ikoonid vÔi spetsiifilised vahed, puhul. Siiski muudab nende jÀikus nad vÀhem ideaalseks vÀga reageerivate paigutuste jaoks, mis peavad kohanema erinevate ekraanisuurustega. Kuigipxon globaalselt mÔistetav, vÔib ainult sellele tuginemine viia paigutusteni, mis ei skaleeru hÀsti kasutajate jaoks, kellel on erinevad kuvasÀtted vÔi ligipÀÀsetavusvajadused..grid-container { display: grid; grid-template-columns: 100px 250px 150px; /* Kolm fikseeritud pikslilaiusega veergu */ grid-template-rows: 50px auto; } -
Suhtelised ĂŒhikud (
em,rem,vw,vh,%): Need ĂŒhikud pakuvad suuremat paindlikkust. Nad tuletavad oma vÀÀrtused teistest omadustest vĂ”i vaateaknast, muutes need olemuselt reageerivamaks ja ligipÀÀsetavamaks globaalsele publikule.-
em: Suhteline elemendi enda fondi suurusega (vÔi selle lÀhima vanema omaga, kui see pole selgesÔnaliselt mÀÀratud). SuurepÀrane komponenditasemel skaleerimise loomiseks, tagades, et vahed ja suurused komponendi sees jÀÀvad proportsionaalseks selle teksti suurusega..grid-item { font-size: 16px; } .grid-container { display: grid; grid-template-columns: 8em 15em 8em; /* Veerud on suhtelised konteineri fondi suurusega */ } -
rem: Suhteline juur-elemendihtmlfondi suurusega. Seda eelistatakse sageli lehe ĂŒldiseks skaleerimiseks, kuna juurfondi suuruse muutmine (nt ligipÀÀsetavuse jaoks) skaleerib kogu paigutuse proportsionaalselt. See on eriti kasulik globaalsetele kasutajatele, kes vĂ”ivad kohandada oma brauseri vaikimisi fondi suurust.html { font-size: 100%; /* VĂ”i 16px */ } .grid-container { display: grid; grid-template-columns: 6rem 12rem 6rem; /* Veerud on suhtelised juurelemendi fondi suurusega */ } -
vw(vaateakna laius) javh(vaateakna kĂ”rgus): Suhteline vaateakna laiuse vĂ”i kĂ”rgusega.1vwon 1% vaateakna laiusest. Need on suurepĂ€rased tĂ”eliselt voolavate disainide jaoks, mis skaleeruvad otse brauseriaknaga, ideaalsed suurte hero-sektsioonide vĂ”i elementide jaoks, mis peaksid alati hĂ”ivama teatud protsendi ekraanipinnast, olenemata seadmest. See tagab ĂŒhtlase visuaalse proportsiooni kĂ”igil ekraaniresolutsioonidel globaalselt..grid-container { display: grid; grid-template-columns: 10vw 80vw 10vw; /* KĂŒlgribad kumbki 10%, pĂ”hiosa 80% vaateakna laiusest */ } -
%(protsent): Suhteline grid-konteineri suurusega. Kui teie grid-konteineril on mÀÀratletud laius, siis protsentide kasutamine veeruradade jaoks paneb need hĂ”ivama teatud protsendi sellest konteineri laiusest. See on hea ruumi jaotamiseks fikseeritud vĂ”i proportsionaalselt suurusega vanema sees. Siiski tuleb meeles pidada, et protsendid ei arvesta grid-vahedega (gap), mis vĂ”ib mĂ”nikord pĂ”hjustada ootamatuid ĂŒlevoolusid, kui seda hoolikalt ei hallata..grid-container { display: grid; grid-template-columns: 25% 50% 25%; /* Veerud hĂ”ivavad 25%, 50%, 25% konteineri laiusest */ }
-
Murdosa ĂŒhik (fr)
Kuigi fikseeritud ja protsentuaalsed ĂŒhikud pakuvad ettearvatavat suurust, tutvustab murdosa ĂŒhik (fr) vĂ”imsa kontseptsiooni olemasoleva ruumi proportsionaalsest jaotamisest grid'i radade vahel. See ĂŒhik on eriti vÀÀrtuslik voolavate, reageerivate paigutuste loomisel, kus sisu peab dĂŒnaamiliselt kohanema vaateaknaga.
Kui defineerite raja fr-ĂŒhikuga, ĂŒtleb see brauserile, et see eraldaks murdosa allesjÀÀnud vabast ruumist grid-konteineris. NĂ€iteks kui teil on kolm veergu defineeritud kui 1fr 2fr 1fr, vĂ”tab keskmine veerg kaks korda rohkem allesjÀÀnud ruumi kui esimene vĂ”i kolmas veerg. "AllesjÀÀnud ruum" on see, mis jÀÀb ĂŒle pĂ€rast seda, kui kĂ”ik fikseeritud suurusega rajad (nagu pikslid, em-id vĂ”i sisupĂ”hised rajad) on oma osa vĂ”tnud ja pĂ€rast gap vÀÀrtuste arvessevĂ”tmist.
Kujutage ette stsenaariumi, kus soovite, et pĂ”hisisu ala vĂ”taks enamiku ruumist, mida ÀÀristavad vĂ€iksemad, vĂ”rdse suurusega kĂŒlgribad. fr-ĂŒhik lihtsustab seda tohutult:
.grid-container {
display: grid;
grid-template-columns: 1fr 3fr 1fr; /* KĂŒlgriba | PĂ”hisisu | KĂŒlgriba */
gap: 20px; /* Vahe radade vahel */
}
/* NĂ€itlik HTML-struktuur konteksti jaoks */
<div class="grid-container">
<div class="sidebar-left">Navigatsioon</div>
<div class="main-content">Artikli sisu lÀheb siia.</div>
<div class="sidebar-right">Reklaamid</div>
</div>
Selles nĂ€ites hĂ”ivab 3fr veerg kolm korda rohkem laiust kui 1fr veerud, arvestades mis tahes gap vÀÀrtusi. See tagab, et teie pĂ”hisisu ala skaleerub dĂŒnaamiliselt brauseriaknaga, sĂ€ilitades oma proportsionaalse domineerimise. See kohanemisvĂ”ime teeb fr-ĂŒhikust kaasaegse, reageeriva veebidisaini nurgakivi, vĂ”imaldades paigutustel sujuvalt kohaneda hulga erinevate ekraanisuurustega, alates mobiiltelefonidest kuni ĂŒlilaia töölauaekraanideni, tagades ĂŒhtlase kasutajakogemuse olenemata seadmest.
VÔtmesÔna auto: sisuteadlik paindlikkus
VĂ”tmesĂ”na auto pakub vĂ”imsat segu paindlikkusest ja sisuteadlikkusest CSS Grid'is. Kui seda kasutatakse raja suurusena, kĂ€itub auto mĂ”nevĂ”rra sarnaselt fr-ĂŒhikuga, kuna see vĂ”tab vaba ruumi, kuid olulise erinevusega: see seab esikohale sisu suuruse oma rajal.
auto rada kasvab, et mahutada oma sisu (kuni grid-konteineri suuruseni), ja kahaneb seejĂ€rel oma minimaalse sisu suuruseni, kui ruumi napib. Kui pĂ€rast kĂ”igi teiste radade (fikseeritud, fr jne) paigutamist on veel ruumi ĂŒle, jaotavad kĂ”ik auto rajad selle allesjÀÀnud ruumi endi vahel ĂŒhtlaselt. See muudab auto eriti kasulikuks paigutustes, kus teatud sisu peab ise oma laiuse vĂ”i kĂ”rguse mÀÀrama.
Kujutage ette paigutust fikseeritud kĂŒlgribaga ja pĂ”hisisu alaga, mis peaks alati oma sisule sobima, kuid ka laienema, et tĂ€ita ĂŒlejÀÀnud ruum:
.grid-container {
display: grid;
grid-template-columns: 200px auto 1fr; /* Fikseeritud kĂŒlgriba | Sisuteadlik | Voolav ĂŒlejÀÀk */
gap: 10px;
}
/* NĂ€itlik HTML konteksti jaoks */
<div class="grid-container">
<div class="sidebar">Fikseeritud laiusega nav</div>
<div class="main-content">See sisu mÀÀrab selle veeru laiuse, kuid ka laieneb.</div>
<div class="info-panel">Paindlik info</div>
</div>
Selles seadistuses on esimene veerg fikseeritud 200px. Teine veerg, kasutades auto, pĂŒĂŒab esmalt olla nii lai, kui selle sisu nĂ”uab (ilma ĂŒlevooluta). SeejĂ€rel vĂ”tab kolmas veerg, 1fr, kogu ĂŒlejÀÀnud vaba ruumi. Kui pĂ€rast 1fr veeru osa vĂ”tmist on veel ruumi, laieneb auto veerg, et tĂ€ita osa sellest allesjÀÀnud ruumist proportsionaalselt. See intelligentne kĂ€itumine vĂ”imaldab luua vĂ€ga dĂŒnaamilisi paigutusi, kus teie grid'i osad saavad hingata koos oma sisuga, mis on hindamatu erinevate keelte ja muutuva sisupikkuse toetamisel globaalses rakenduses.
Sisemised suuruse vÔtmesÔnad: min-content, max-content, fit-content()
Need vÔtmesÔnad vÔimaldavad grid'i radade suuruse mÀÀrata puhtalt nende sisu sisemise suuruse pÔhjal. Need pakuvad vÔimsat viisi luua paigutusi, mis on vÀga kohanduvad tekstile ja elementidele, mida nad sisaldavad, mis on oluline eelis globaalse sisuga tegelemisel, kus teksti pikkused ja tÀhemÀrkide laiused vÔivad dramaatiliselt erineda.
-
min-content: Rada, mille suurus on mÀÀratudmin-content-iga, muutub nii vĂ€ikeseks kui vĂ”imalik ilma oma sisu ĂŒlevooluta. Teksti puhul tĂ€hendab see pikima sĂ”na vĂ”i murdmatu stringi laiust. Piltide puhul on see nende sisemine minimaalne laius. See on kasulik, kui soovite, et veerg ĂŒmbritseks tihedalt oma sisu, vĂ€ltides ebavajalikku tĂŒhja ruumi, eriti mitmeveerulistes paigutustes, kus ruum on hinnas..grid-container { display: grid; grid-template-columns: min-content 1fr min-content; /* Veerud kahanevad, et sobituda sisuga */ gap: 15px; } <div class="grid-container"> <div>LĂŒhike silt</div> <div>See on vĂ€ga pikk sisu, mis vajab piisavalt ruumi, et laieneda ja olla loetav erinevates keeltes ja kirjasĂŒsteemides.</div> <div>Info</div> </div>Selles nĂ€ites on esimene ja kolmas veerg ainult nii laiad kui nende pikim sĂ”na, mis sobib ideaalselt siltide vĂ”i lĂŒhikeste olekuindikaatorite jaoks, mis ei tohiks vĂ”tta rohkem ruumi kui vajalik, olenemata keelest.
-
max-content: Rada, mille suurus on mÀÀratudmax-content-iga, muutub nii laiaks, kui selle sisu soovib, ilma reamurdmisteta vĂ”i ĂŒlevooluta, isegi kui see tĂ€hendab grid-konteineri ĂŒletamist. Teksti puhul tĂ€hendab see kogu stringi laiust, kui see oleks ĂŒhel real. See on kasulik elementide jaoks, mis peavad alati kuvama oma tĂ€ieliku sisu ilma kĂ€rpimata, nĂ€iteks navigeerimisĂŒksus, mis ei tohiks kunagi oma teksti murda..grid-container { display: grid; grid-template-columns: max-content max-content 1fr; /* Veerud laienevad, et sisu tĂ€ielikult mahutada */ gap: 10px; } <div class="grid-container"> <div>TĂ€ielik tootenime kuvamine</div> <div>Lokaliseeritud tarneteave</div> <div>ĂlejÀÀnud detailid</div> </div>Siin venivad esimesed kaks veergu, et tagada, et nende sisu ei murduks kunagi, mis vĂ”ib olla kriitilise tĂ€htsusega olulise, kĂ€rpimata teabe, nagu tootenimed vĂ”i vĂ€ga spetsiifiline lokaliseeritud tekst, kuvamisel.
-
fit-content(: See on ehk kĂ”ige mitmekĂŒlgsem sisemise suuruse vĂ”tmesĂ”na, ĂŒhendades endas) auto,min-contentja mÀÀratud maksimumi parimad aspektid. Rada, mis kasutabfit-content(X), kĂ€itub naguauto, kuid ei kasva suuremaks kuiX(pikkuse vĂ”i protsendi vÀÀrtus) vĂ”i sellemax-contentsuurus, kumb iganes on vĂ€iksem. Samas ei kahane see kunagi alla omamin-contentsuuruse. See on sisuliseltminmax(min-content, max(auto, X)).See on ÀÀrmiselt vĂ”imas veergude loomiseks, mis on sisupĂ”hised, kuid ka piiratud, et vĂ€ltida liigset kasvu, vĂ”i tagada, et nad tĂ€idavad vaba ruumi kuni teatud punktini. Kujutage ette kasutajakommentaaride sektsiooni, kus kommentaarid peaksid laienema, et sobituda nende tekstiga, kuid ei tohiks enne reamurdmist ĂŒletada teatud laiust.
.grid-container { display: grid; grid-template-columns: fit-content(300px) 1fr; gap: 20px; } <div class="grid-container"> <div>LĂŒhike mĂ€rkus.</div> <div>See on palju pikem tekstilĂ”ik, mis peab reamurdmist tegema ja olema loetav. See laieneb kuni 300 pikslini, enne kui murrab rida, tagades, et isegi vĂ€ga pikad tĂ”lgitud laused sĂ€ilitavad hea loetavuse ega lĂŒkka paigutust liigselt paigast.</div> </div>Esimene veerg on vĂ€hemalt oma
min-contentsuurune ja kasvab koos sisuga kuni300px, pĂ€rast mida hakkab see reamurdmist tegema. Kui vaba ruumi on rohkem, kĂ€itub see naguautoja vĂ”tab oma osa. See dĂŒnaamiline kohanemisvĂ”ime on hindamatu vÀÀrtusega mitut keelt toetavate kasutajaliideste jaoks, kus sisu pikkus vĂ”ib olla vĂ€ga ettearvamatu.
minmax() vÔimsus
Kuigi ĂŒksikud raja suuruse ĂŒhikud on vĂ”imsad, vallandub nende tĂ”eline jĂ”ud siis, kui neid kombineerida minmax() funktsioonis. Funktsioon minmax(min, max) defineerib grid'i raja suuruse vahemiku: rada ei ole vĂ€iksem kui min ja mitte suurem kui max. Nii min kui ka max vĂ”ivad olla mis tahes kehtiv raja suurus (pikkus, protsent, fr, auto, min-content, max-content, fit-content()), muutes minmax() uskumatult mitmekĂŒlgseks robustsete, reageerivate paigutuste loomisel.
minmax() pakutav paindlikkus on ĂŒlioluline paigutuste ehitamisel, mis kohanevad sujuvalt erinevate ekraanisuuruste ja sisuga, mis on globaalsete rakenduste jaoks vĂ€ltimatu nĂ”ue. See vĂ”imaldab teil kehtestada miinimumpiiranguid, et vĂ€ltida sisu muutumist loetamatult vĂ€ikeseks, samal ajal vĂ”imaldades kasvu, et olemasolevat ruumi tĂ”husalt Ă€ra kasutada.
Levinud mustrid minmax()-ga:
-
minmax(auto, 1fr): See on vĂ€ga paindlik raja suurus. Rada on vĂ€hemalt sama suur kui selle sisu (auto) ja kasvab, et tarbida vaba murdosa ruumi, kui seda on rohkem saadaval (1fr). See on ideaalne pĂ”hisisu alade jaoks, mis peaksid austama oma sisu loomulikku suurust, kuid ka venima, et tĂ€ita ĂŒlejÀÀnud ruum..grid-container { display: grid; grid-template-columns: 200px minmax(auto, 1fr); /* Fikseeritud kĂŒlgriba, pĂ”hisisu tĂ€idab ĂŒlejÀÀnud ruumi, kuid arvestab oma minimaalse sisu suurusega */ } -
minmax(200px, 1fr): Siin on rada alati vĂ€hemalt200pxlai, kuid kui vaba ruumi on rohkem, kasvab see proportsionaalselt, et tĂ€ita see1fr-ina. See on suurepĂ€rane pildigaleriide vĂ”i tootekataloogide jaoks, kus soovite elementidele minimaalset nĂ€htavat suurust, kuid soovite ka, et need suurematel ekraanidel ĂŒles skaleeruksid..grid-container { display: grid; grid-template-columns: repeat(3, minmax(200px, 1fr)); /* Kolm veergu, igaĂŒks vĂ€hemalt 200px, kuid kasvavad proportsionaalselt */ } -
minmax(min-content, max-content): See konfiguratsioon paneb raja suuruse mÀÀrama end puhtalt oma sisu pĂ”hjal, mitte kunagi kahanedes alla oma vĂ€ikseima vĂ”imaliku suuruse ja mitte kunagi laienedes ĂŒle oma ideaalse suuruse (mahutades kogu sisu ĂŒhele reale). See on mĂ”nikord kasulik vĂ€ga spetsiifiliste, sisupĂ”histe komponentide jaoks, kus dĂŒnaamiline reamurdmine vĂ”i ruumi tĂ€itmine ei ole soovitav.
TÔhus radade kordamine repeat()-ga
Radade suuruste kĂ€sitsi loetlemine vĂ”ib muutuda tĂŒlikaks grid'ide puhul, kus on palju identseid veerge vĂ”i ridu. Funktsioon repeat() lihtsustab seda, vĂ”imaldades teil defineerida radade mustri, mis kordub mÀÀratud arv kordi vĂ”i dĂŒnaamiliselt vastavalt olemasolevale ruumile.
SĂŒntaks on repeat(count, track-list). count vĂ”ib olla positiivne tĂ€isarv vĂ”i vĂ”tmesĂ”nad nagu auto-fill vĂ”i auto-fit. track-list on ĂŒks vĂ”i mitu raja suurust.
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr); /* Neli vÔrdset veergu */
grid-template-rows: repeat(2, 100px); /* Kaks 100px rida */
}
See on puhas ja lĂŒhike, eriti ĂŒhtlaste grid'ide, nagu fotogaleriid vĂ”i kaardipaigutused, loomiseks.
DĂŒnaamiline kordamine: auto-fit ja auto-fill
repeat() tÔeline jÔud reageeriva disaini jaoks, eriti globaalses kontekstis, kus sisu ja ekraanisuurused varieeruvad, tuleb esile auto-fit ja auto-fill vÔtmesÔnadega. Kui neid kombineerida minmax()-ga, loovad need voolavaid, isekohanduvaid grid'e, mis on vÀga vastupidavad vaateakna suuruse vÔi sisu muutustele. Seda mustrit nimetatakse sageli "iseparanevaks" grid'iks.
Selle dĂŒnaamilise kĂ€itumise sĂŒntaks on tavaliselt grid-template-columns: repeat(auto-fit/auto-fill, minmax(
-
auto-fill: See vĂ”tmesĂ”na kĂ€sib brauseril luua nii palju radu kui vĂ”imalik, et tĂ€ita olemasolev ruum, isegi kui pole piisavalt grid-elemente kĂ”igi nende radade tĂ€itmiseks. Kui luuakse tĂŒhje radu, vĂ”tavad need siiski ruumi. See on kasulik, kui soovite tagada ĂŒhtlase vahe vĂ”i vĂ€ltida ĂŒhe elemendi liiga laia venimist reas, isegi kui see on ainus. Kujutage ette paigutust, kus soovite alati jĂ€tta ruumi potentsiaalsetele uutele elementidele vĂ”i reklaamidele, isegi kui neid hetkel pole..product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; } /* auto-fill'i puhul, kui ruumi on 4 veeru jaoks, aga elemente on 3, jÀÀb 4. veeru pesa nĂ€htavale (tĂŒhjaks). */ -
auto-fit: See vĂ”tmesĂ”na kĂ€itub identseltauto-fill-iga, kuni kĂ”ik olemasolevad elemendid on paigutatud. Kui kĂ”ik elemendid on paigutatud, siis kĂ”ik tĂŒhjad rajad, misauto-fill-iga loodi, surutakse kokku 0 laiuseks. ĂlejÀÀnud rajad laienevad seejĂ€rel, et tĂ€ita olemasolev ruum. See on tavaliselt eelistatud reageerivate elementide grid'ide jaoks, kus soovite, et elemendid veniksid ja tĂ€idaksid kogu vaba ruumi, kui elemente on vĂ€hem kui potentsiaalseid radu. See tagab, et teie elemendid on alati nii suured kui vĂ”imalik ilma ĂŒlevooluta, pakkudes puhtamat vĂ€limust..gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; } /* auto-fit'i puhul, kui ruumi on 4 veeru jaoks, aga elemente on 3, laienevad 3 elementi tĂ€itma kogu laiuse, kokku surudes 4. potentsiaalse pesa. */
Valik auto-fill ja auto-fit vahel sĂ”ltub suuresti sellest, kas eelistate, et tĂŒhjad kohad oleksid nĂ€htavad (auto-fill) vĂ”i et olemasolev sisu laieneks nende tĂŒhimike tĂ€itmiseks (auto-fit). Enamiku reageerivate grid'ide puhul pakub auto-fit esteetiliselt meeldivamat ja tĂ”husamat ruumikasutust, eriti kui elementide arv vĂ”ib kĂ”ikuda. See dĂŒnaamiline kohanemine on ĂŒlioluline veebirakenduste jaoks, mis teenindavad globaalset publikut, kus sisu tihedus ja elementide arv vĂ”ivad kasutaja eelistuste vĂ”i taustasĂŒsteemi andmete pĂ”hjal laialdaselt erineda.
SelgesÔnalisest kaugemale: kaudne Grid'i radade suuruse mÀÀramine
Kuigi te defineerite enamiku oma grid'i struktuurist, kasutades selgesÔnalisi radu omadustega grid-template-columns ja grid-template-rows, on CSS Grid'il ka mehhanism kaudsete radade loomiseks. Need rajad genereeritakse automaatselt, kui paigutate grid-elemendi vÀljapoole oma selgesÔnaliselt defineeritud grid'i piire vÔi kui grid-konteineris on rohkem elemente, kui selle selgesÔnalised raja definitsioonid mahutavad.
NÀiteks kui defineerite selgesÔnaliselt ainult kaks veergu, kuid paigutate seejÀrel kolmanda elemendi kolmandasse veergu, kasutades grid-column: 3;, luuakse selle elemendi mahutamiseks kaudne kolmas veerg. Samamoodi, kui teil on rohkem grid-elemente kui selgesÔnalisi rea definitsioone, lisatakse nende mahutamiseks kaudseid ridu.
grid-auto-columns ja grid-auto-rows
Vaikimisi on kaudsete radade suuruseks auto. Siiski saate kontrollida nende automaatselt genereeritud radade suurust, kasutades grid-auto-columns ja grid-auto-rows. Need omadused aktsepteerivad ĂŒhte raja suuruse vÀÀrtust vĂ”i vÀÀrtuste loendit (mis kordub jĂ€rgnevate kaudsete radade puhul).
See on uskumatult kasulik dĂŒnaamilise sisu puhul, kus te ei pruugi ette teada ridade vĂ”i veergude tĂ€pset arvu. Kujutage ette armatuurlauda, kuhu kasutajad lisavad vidinaid, luues vajadusel uusi ridu:
.dashboard-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* MÀÀratle selgesÔnaliselt 3 veergu */
grid-auto-rows: minmax(150px, auto); /* Kaudsed read on vÀhemalt 150px, kuid kasvavad koos sisuga */
gap: 20px;
}
/* Kui 3-veerulises grid'is on 5 elementi, loob Grid 2 selgesÔnalist rida ja 1 kaudse rea. */
/* Kaudse rea suuruse mÀÀrab grid-auto-rows. */
Siin jĂ€rgiksid kĂ”ik read, mis on loodud elementide paigutamisest kaugemale (vĂ”i kui te defineeriksite selgesĂ”nalisi ridu), minmax(150px, auto) suuruse reeglit. See tagab dĂŒnaamilistele sisuplokkidele minimaalse kĂ”rguse, vĂ”imaldades neil samal ajal laieneda, et sobituda muutuva sisupikkusega, mis on ĂŒlioluline rahvusvahelise sisu vĂ”i kasutajate loodud andmete puhul, kus ranged mÔÔtmed on sageli ebapraktilised.
grid-auto-flow
Kuigi see ei ole otsene raja suuruse omadus, mÔjutab grid-auto-flow oluliselt seda, kuidas kaudseid radu genereeritakse, kontrollides automaatse paigutuse algoritmi. See dikteerib, kuidas grid-elemendid automaatselt grid'i paigutatakse, mis omakorda mÀÀrab, millal ja kus kaudsed rajad luuakse.
-
row(vaikimisi): Elemendid paigutatakse ridade kaupa, lisades vajadusel uusi ridu. See on kÔige levinum kÀitumine, mis viib kaudsete ridade tekkimiseni. -
column: Elemendid paigutatakse veergude kaupa, lisades vajadusel uusi veerge. See viib kaudsete veergude tekkimiseni, mille suurust kontrolliks siisgrid-auto-columns. -
dense: PĂŒĂŒab tĂ€ita tĂŒhimikke grid'i varasemates osades. See vĂ”ib viia vĂ€hem ettearvatava visuaalse jĂ€rjekorrani, kuid kompaktsema paigutuseni, mĂ”jutades potentsiaalselt seda, millised rajad muutuvad kaudseks.
NÀiteks kui seate grid-auto-flow: column; ja teil on rohkem elemente kui teie selgesÔnalistes veeru definitsioonides, muutuks grid-auto-columns nende uute, kaudsete veergude suuruse mÀÀramisel vÀga oluliseks.
TĂ€iustatud tehnikad ja reaalse maailma stsenaariumid
NĂŒĂŒd, kui oleme kĂ€sitlenud pĂ”hilisi ja dĂŒnaamilisi radade suuruse mÀÀramise mehhanisme, uurime, kuidas need kombineeruvad, et ehitada keerukaid, reaalses maailmas toimivaid paigutusi, mis on reageerivad, ligipÀÀsetavad ja jĂ”udsad globaalsele publikule.
Reageerivad paigutused repeat() ja minmax() abil
Kombinatsioon repeat()-ist koos auto-fit/auto-fill ja minmax(-ga on vaieldamatult kÔige vÔimsam muster tÔeliselt reageerivate grid'ide loomiseks. See tehnika vÔimaldab teil defineerida grid'i, kus elemendid murduvad automaatselt uutele ridadele, kui vaateaken kahaneb, ja laienevad, et tÀita vaba ruumi, kui see kasvab, ilma et oleks vaja selgesÔnalisi meediapÀringuid veergude muutmiseks.
Kujutage ette e-kaubanduse platvormi toodete kuvamise lehte. Tooted peaksid suurtel ekraanidel kuvama mitmes veerus, kuid vÀiksematel seadmetel kenasti virnastuma. Tootekaardi minimaalne laius vÔiks olla 250px, kuid see peaks painduma, et tÀita vaba ruumi:
.product-listing {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
padding: 20px;
}
/* Kujutage ette mitut <div class="product-card"> elementi sees. */
/* Laial ekraanil vÔite nÀha 4 vÔi 5 veergu. */
/* Ekraani kitsendades vÀheneb see sujuvalt 3, seejÀrel 2, siis 1 veeruni, */
/* kusjuures iga kaart laieneb, et tÀita veeru laius. */
See ĂŒksainus CSS-deklaratsioon haldab keerulist reageerivust vaevata. Globaalse e-kaubanduse jaoks, kus tootenimed vĂ”i kirjeldused vĂ”ivad erinevates keeltes olla palju pikemad vĂ”i lĂŒhemad, tagab see muster, et tootekardid nĂ€evad alati head vĂ€lja, sĂ€ilitades oma minimaalse loetavuse suuruse, kohanedes samal ajal erineva sisu kuvamisega ilma paigutust lĂ”hkumata. See on kohanduva disaini nurgakivi.
Keerulised kasutajaliidese struktuurid: pĂ€is, kĂŒlgriba, pĂ”hisisu, jalus
Lehe ĂŒldise paigutuse defineerimiseks pakub grid'i radade suuruse mÀÀramise kombineerimine grid-template-areas-iga semantilist ja vĂ€ga loetavat lĂ€henemist. grid-template-areas vĂ”imaldab teil oma paigutuse osadele nimesid anda, muutes struktuuri uskumatult selgeks. SeejĂ€rel defineerite nendele aladele vastavate ridade ja veergude suurused.
Kujutage ette tavalist veebilehe struktuuri: pĂ€is, mis ulatub ĂŒle ĂŒlaosa, pĂ”hisisu ala, mida ÀÀristab kĂŒlgriba, ja jalus allosas. See paigutus vajab tĂ€pset kontrolli veergude ja ridade kĂ”rguste ĂŒle.
.page-layout {
display: grid;
grid-template-columns: 250px 1fr; /* Fikseeritud kĂŒlgriba, voolav pĂ”hisisu */
grid-template-rows: auto 1fr auto; /* PÀise kÔrgus sisu jÀrgi, pÔhisisu tÀidab ruumi, jaluse kÔrgus sisu jÀrgi */
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
min-height: 100vh; /* Tagab, et paigutus hÔivab kogu vaateakna kÔrguse */
}
.header { grid-area: header; background-color: #f8f8f8; padding: 20px; }
.sidebar { grid-area: sidebar; background-color: #e6e6e6; padding: 20px; }
.main-content { grid-area: main; background-color: #f0f0f0; padding: 30px; }
.footer { grid-area: footer; background-color: #f8f8f8; padding: 15px; }
/* NĂ€itlik HTML-struktuur */
<div class="page-layout">
<header class="header">Saidi pÀis</header>
<aside class="sidebar">PÔhinavigatsioon</aside>
<main class="main-content"><h1>Tere tulemast meie globaalsele platvormile!</h1><p>See on pÔhisisu ala.</p></main>
<footer class="footer">AutoriĂ”igus 2024 ©</footer>
</div>
Selles seadistuses:
grid-template-columns: 250px 1fr;loob fikseeritud laiusega kĂŒlgriba ja pĂ”hisisu ala, mis vĂ”tab kogu ĂŒlejÀÀnud horisontaalse ruumi.grid-template-rows: auto 1fr auto;tagab, et pĂ€ise ja jaluse kĂ”rgus mÀÀratakse nende sisu jĂ€rgi, samal ajal kui pĂ”hisisu rida laieneb, et tĂ€ita olemasolev vertikaalne ruum, lĂŒkates jaluse vaateakna allossa.
See lĂ€henemine pakub robustset raamistikku, mis kohandub hĂ€sti muutuva sisu kĂ”rgusega (nt pĂ€is pika tĂ”lgitud saidi pealkirjaga) ja tagab ekraanipinna optimaalse kasutuse, mis on oluline ĂŒhtlase kasutajakogemuse tagamiseks erinevates kultuurides ja seadmetĂŒĂŒpides.
DĂŒnaamilise sisu ja rahvusvahelistamise kĂ€sitlemine
Ăks veenvamaid eeliseid tĂ€iustatud Grid'i radade suuruse mÀÀramisel globaalsele publikule on selle omane kohanemisvĂ”ime dĂŒnaamilise ja rahvusvahelise sisuga. Teksti pikkused, tĂ€hemĂ€rgistikud (nt CJK-tĂ€hemĂ€rgid vs. ladina tĂ€hemĂ€rgid) ja isegi lugemissuunad (vasakult paremale vs. paremalt vasakule) vĂ”ivad drastiliselt muuta sisu jaoks vajalikku visuaalset ruumi.
-
min-content,max-content,autojafit-content(): Need sisemise suuruse vĂ”tmesĂ”nad on hindamatud. NĂ€iteks keelevalikuga navigeerimisriba vĂ”ib kasutadamin-contentiga keelevaliku jaoks, et tagada, et nupp on ainult nii lai kui praeguse keele tekst, olenemata sellest, kas see on "English," "Deutsch," vĂ”i "æ„æŹèȘ." See vĂ€ldib ebavajalikku tĂŒhja ruumi ja hoiab kasutajaliidese kompaktsena. Kui veerg sisaldab kasutajate loodud sisu, tagabminmax(min-content, 1fr), et see on loetav, kuid ka reageeriv, vĂ€ltides ĂŒlevoolu probleeme..language-switcher { display: grid; grid-auto-flow: column; grid-auto-columns: min-content; /* Iga keele nupp on sama lai kui selle tekst */ gap: 10px; } -
fr-ĂŒhik: Selle proportsionaalne olemus muudab selle suurepĂ€raseks valikuks ruumi jaotamisel, kui teksti pikkused varieeruvad. Kui teil on kolm veergu tooteomaduste jaoks ja ĂŒhe omaduse kirjeldus on konkreetses keeles eriti pikk, tagabfr-ĂŒhik, et kĂ”ik veerud jagavad sujuvalt olemasolevat laiust ilma paigutust lĂ”hkumata vĂ”i kĂ€rpimist sundimata, sĂ€ilitades loetavuse kĂ”igis lokaatides..feature-list { display: grid; grid-template-columns: repeat(3, 1fr); /* Iga omadus saab vĂ”rdse osa ruumist */ gap: 15px; } /* Kui omaduse kirjeldus saksa keeles on palju pikem kui inglise keeles, */ /* tagavad 1fr ĂŒhikud, et veerud kohanduvad sujuvalt. */ -
Paremal-vasakule (RTL) keeled: Kuigi CSS Grid'i radade suuruse omadused on suures osas suunast sÔltumatud (kuna `start` ja `end` on loogilised omadused), tuleb arvestada selgesÔnalise suuruse mÀÀramise visuaalse efektiga. NÀiteks
200pxfikseeritud laiusega kĂŒlgriba vasakul LTR-is jÀÀb200pxlaiuseks vasakul (vĂ”i `inline-start`) ka RTL-is. Siiski kohanduvad radade sees olev sisumin-contentjamax-contentloomulikult tekstivooluga, muutes Grid'i suurepĂ€raseks valikuks rahvusvahelistamiseks, kui seda kombineerida sobivate HTML `dir` atribuutidega.
Parimad tavad globaalseks veebiarenduseks CSS Grid'iga
Radade suuruse valdamine on vaid ĂŒks osa erakordsete veebikogemuste loomisest. Et tagada, et teie Grid-paigutused on tĂ”eliselt robustsed, skaleeritavad ja kaasavad globaalsele publikule, arvestage jĂ€rgmiste parimate tavadega:
JÔudluse kaalutlused
Kuigi CSS Grid on brauserimootorite poolt vÀga optimeeritud, on siiski jÔudlusega seotud kaalutlusi, eriti keeruliste paigutuste vÔi suure hulga grid-elementide puhul:
-
TĂ”hus CSS: Hoidke oma grid-definitsioonid puhtad ja lĂŒhikesed. VĂ€ltige liiga keerulisi pesastatud grid'e, kui see pole absoluutselt vajalik. Lihtsamate ĂŒlesannete jaoks piisab sageli ĂŒhest grid-kontekstist.
-
Minimeerige paigutuse nihkeid: Veenduge, et teie grid'i struktuur on stabiilne. SelgesÔnalise radade suuruse (vÔi `minmax()` fikseeritud miinimumidega) kasutamine aitab vÀltida olulisi paigutuse nihkeid, mis on kahjulikud kasutajakogemusele ja veebi elutÀhtsatele nÀitajatele, eriti aeglasemates vÔrkudes vÔi seadmetes, mis on levinud erinevates globaalsetes piirkondades.
-
Loogilised omadused: Kasutage loogilisi omadusi nagu
inline-start,block-end,margin-inline,padding-block, kus see on asjakohane. Kuigi need ei mĂ”juta otseselt radade suurust, edendavad need kohanduvama ja tulevikukindlama CSS-i kirjutamist, mis austab loomulikult erinevaid kirjutamisreĆŸiime (LTR, RTL, vertikaalsed skriptid) ilma tĂŒlikate ĂŒlekirjutamisteta rahvusvahelistamiseks.
LigipÀÀsetavus (A11y)
HĂ€sti struktureeritud grid peab olema ligipÀÀsetav ka kĂ”igile kasutajatele, sealhulgas neile, kes kasutavad abitehnoloogiaid nagu ekraanilugejad. Grid'i visuaalse ĂŒmberjĂ€rjestamise vĂ”imalused, kuigi vĂ”imsad, vĂ”ivad mĂ”nikord lahti siduda visuaalse jĂ€rjekorra DOM-i (Document Object Model) jĂ€rjekorrast, mida ekraanilugejad jĂ€rgivad.
-
Eelistage DOM-i jÀrjekorda: VÔimaluse korral korraldage oma HTML-lÀhtekood loogilises lugemisjÀrjekorras. Kasutage Grid'i visuaalseks esitluseks, kuid veenduge, et aluseks olev semantiline struktuur jÀÀb sidusaks. See on kriitilise tÀhtsusega kasutajatele igast taustast, kes tuginevad abitehnoloogiatele teie sisu navigeerimiseks.
-
Kasutage selguse huvides
grid-template-areas: Kasutadesgrid-template-areas, vĂ”ivad semantilised nimed (nt "header", "nav", "main", "footer") muuta teie paigutuse arenduse ajal arusaadavamaks ja aidata kaasa paremini organiseeritud HTML-ile, kui te need intuitiivselt kaardistate. Kuigigrid-template-areasei mĂ”juta DOM-i jĂ€rjekorda, soodustab see tahtlikumat paigutuse disaini, mis sageli ĂŒhtib loogilise sisuvooluga. -
Testige abitehnoloogiatega: Testige oma grid-paigutusi alati ekraanilugejatega (nt NVDA, JAWS, VoiceOver), et tagada sisu esitamine tĂ€henduslikus ja navigeeritavas jĂ€rjekorras, olenemata visuaalsest ĂŒmberjĂ€rjestamisest. See on vĂ€ltimatu samm tĂ”eliselt kaasavate globaalsete veebikogemuste loomisel.
Hooldatavus ja skaleeritavus
Kui teie projektid kasvavad ja arenevad, muutub hÀsti organiseeritud ja hooldatav CSS esmatÀhtsaks. See kehtib eriti koostöökeskkondades, kus on arendajaid erineva keelelise ja haridusliku taustaga.
-
Nimetage grid'i jooni ja alasid: Kasutage kohandatud nimesid grid'i joonte (nt `grid-template-columns: [main-start] 1fr [main-end];`) ja alade (
grid-template-areaskaudu) jaoks. See parandab loetavust ja muudab meeskonnaliikmetele paigutuse kavatsuse mÔistmise lihtsamaks, ilma et peaks numbrilisi joonte positsioone meelde jÀtma. Selged nimetamiskonventsioonid on universaalselt kasulikud. -
CSS-i kohandatud omadused (muutujad): Kasutage CSS-i kohandatud omadusi (
--variable-name) levinud radade suuruste, vahede vÔi murdepunktide defineerimiseks. See tsentraliseerib disainiotsused, muudab muudatuste tegemise lihtsamaks ja edendab jÀrjepidevust keerulistes paigutustes. NÀiteks defineerige--spacing-unit, mida kÔik vahed jÀrgivad.:root { --grid-gap: 20px; --sidebar-width: 280px; } .page-layout { display: grid; grid-template-columns: var(--sidebar-width) 1fr; gap: var(--grid-gap); } -
Jaotage keerulised grid'id osadeks: VÀga keerukate disainide puhul kaaluge pesastatud grid'ide vÔi alamgrid'ide (subgrid) kasutamist (kui need on laialdaselt toetatud), et hallata keerukust. Alamgrid vÔimaldab grid-elemendil pÀrida oma vanema grid'i raja definitsioonid, pakkudes vÀga peent kontrolli suurema grid-konteksti sees.
Brauseritevaheline ĂŒhilduvus ja tagavaralahendused
Kuigi CSS Grid'il on suurepĂ€rane tugi kaasaegsetes brauserites ĂŒle maailma, on selle ĂŒhilduvuse mĂ”istmine ja tagavaralahenduste vĂ”i progressiivsete tĂ€iustuste pakkumine endiselt vastutustundlik arenduspraktika.
-
Kaasaegsete brauserite tugi: CSS Grid on laialdaselt toetatud kÔigis suuremates igihaljastes brauserites (Chrome, Firefox, Safari, Edge) ja on seda olnud juba mitu aastat. Enamiku uute projektide puhul, mis on suunatud kaasaegsetele veebikasutajatele, on ulatuslikud tagavaralahendused sageli ebavajalikud.
-
@supports-reegel: Keskkondades, mis vĂ”ivad sisaldada vanemaid brausereid, kasutage@supportsCSS-i at-reeglit, et rakendada Grid-stiile ainult siis, kui brauser neid toetab. See vĂ”imaldab teil pakkuda lihtsamat (nt Flexbox vĂ”i isegi plokktaseme) paigutust tagavaralahendusena mittetoetavatele brauseritele, tagades sujuva degradeerumise, mitte katkise kogemuse..container { /* Tagavarastiilid (nt display: flex vĂ”i lihtne plokk-paigutus) */ display: flex; flex-wrap: wrap; } @supports (display: grid) { .container { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; /* Grid-spetsiifilised stiilid */ } }See lĂ€henemine tagab, et teie sisu on alati ligipÀÀsetav, isegi kui keerukas grid-paigutus pole vanemates brauserites tĂ€ielikult renderdatud. See austab kasutajate mitmekesiseid tehnoloogiamaastikke ĂŒle maailma.
KokkuvÔte
CSS Grid'i radade suuruse mÀÀramine on vĂ”imsate, paindlike ja kohanduvate veebipaigutuste aluskivi. MĂ”istes ja tĂ”husalt kasutades ĂŒhikuid nagu fr, auto, min-content, max-content ja transformatiivset minmax() funktsiooni koos dĂŒnaamilise kordamisega repeat(auto-fit/auto-fill, ...) kaudu, saate oma disainide ĂŒle enneolematu kontrolli.
Need tÀiustatud tehnikad annavad arendajatele vÔimu luua vÀga reageerivaid kasutajaliideseid, mis kohanduvad sujuvalt hulga ekraanisuuruste, sisupikkuste ja isegi rahvusvahelistamise nÔuetega, sÀilitades samal ajal selguse ja jÔudluse. Alates keerukatest armatuurlaua paigutustest kuni kohanduvate e-kaubanduse toote-grid'ideni avab radade suuruse valdamine veebidisaini jaoks uue vÔimaluste maailma.
VÔtke omaks CSS Grid'i radade suuruse mÀÀramise vÔimsus. Katsetage nende omadustega, kombineerige neid uudsetel viisidel ja jÀlgige, kuidas teie paigutused muutuvad robustsemaks ja vastupidavamaks. Alustage nende tÀiustatud tehnikate integreerimist oma projektidesse juba tÀna, et ehitada tÔeliselt silmapaistvaid ja globaalselt ligipÀÀsetavaid veebikogemusi, mis peavad vastu ajaproovile ja kohanevad mis tahes vÀljakutsega, mida digitaalmaailm nende teele heidab.